/**
 * 等式方程的可满足性
 * https://leetcode.cn/problems/satisfiability-of-equality-equations/
 */
class Solution2 {
    public boolean equationsPossible(String[] equations) {
        UnionFindSet unionFindSet = new UnionFindSet(26);
        for(int i = 0; i < equations.length;i++) {
            if(equations[i].charAt(1) == '=') {
                // 是等于号 ， 添加进并查集
                unionFindSet.union(equations[i].charAt(0) - 'a',equations[i].charAt(3) - 'a');
            }
        }
        for(int i = 0; i < equations.length;i++) {
            if(equations[i].charAt(1) == '!') {
                // 是感叹号 ，判断是否是在并查集 如果不在就没事，如果在就返回false
                boolean ret = unionFindSet.isSameUnionFindSet(equations[i].charAt(0) - 'a',equations[i].charAt(3) - 'a');
                if(ret) {
                    return false;
                }
            }
        }
        return true;
    }
}